/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ventasautomotrices;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

/**
 *
 * @author Chapas
 * Data controlo manejará la lógica del negocio y 
 * administrará los datos necesarios y operaciones.
 */
public class ControlDatos {
    
    private AdminConexion adminc = new AdminConexion();
    
    public boolean InsertarAuto(String marca, String modelo, String linea, String tipo, String color, String estado, String placa){
        
        try{
        String query = "insert into Automovil ( Marca,Modelo,Linea,Tipo,Color,Estado,Placa) values ('"+marca+"','"+modelo+"','"+linea+"','"+tipo+"','"+color+"','"+estado+"','"+placa+"')";
        System.out.println(query);
        adminc.update(query);
        return true;
        }
        catch(Exception e){
        
            System.out.println("Fallo Insertar");
            return false;
        }
           
    }

    
    public String ConsultarAuto(String Marca, String modelo, String linea, String tipo, String color, String estado, String placa){
        
        try{
            String query = "Select Marca, Modelo, Linea, Tipo, Color ,Estado, Placa from Automovil";
            String q2 = "";
            if(Marca.length()>0){
                q2+= " Marca='"+Marca+"'";
            }
            if(modelo.length()>0){
                if(q2.length()>0) q2+= " and"; 
                q2+= " Modelo='"+modelo+"'";
            }
            if(linea.length()>0){
                if(q2.length()>0) q2+= " and"; 
                q2+= " Linea='"+linea+"'";
            }
            if(tipo.length()>0){
                if(q2.length()>0) q2+= " and"; 
                q2+= " Tipo='"+tipo+"'";
            }
            if(color.length()>0){
                if(q2.length()>0) q2+= " and"; 
                q2+= " Color='"+color+"'";
            }
            if(estado.length()>0){
                if(q2.length()>0) q2+= " and"; 
                q2+= " Estado='"+estado+"'";
            }
            if(placa.length()>0){
                if(q2.length()>0) q2+= " and"; 
                q2+= " Placa='"+placa+"'";
            }
            if(q2.length()>0) q2= " where" + q2; 
            query = query + q2;
            
            System.out.println(query);
            String s = adminc.select(query);
            return s;
        } catch(Exception e){
            System.out.println("Fallo Insertar");
            return "";
        }
           
    }

    
    
    public ResultSet ConsultarAuto(int id){
    ResultSet resultado = null;
    
        try {
            String query = "Select Marca, Modelo,Linea,Tipo,Color,Estado,Placa from Automovil" +                          "where idAutomovil = " + id;
            System.out.println("ConsultarAuto-- :" +query);
            resultado = adminc.consulta(query);
        } catch (Exception e) {
            System.out.println("Fallo ConsultarAuto");
            
        }
    return resultado;
    }
    
      
      
        
    public int login(String idUsuario, String password ) throws SQLException, InstantiationException, IllegalAccessException, ClassNotFoundException{
        adminc.abrirConexionBDD();
        int ret = adminc.login(idUsuario, password);
        adminc.cerrarConexionBDD();
        return ret;
    }
    
    
    public int registroLogin(String idUsuario ) throws InstantiationException, IllegalAccessException, ClassNotFoundException, SQLException{
        Connection conn = adminc.abrirConexionBDD();
        
        String query="INSERT INTO AutoVentas.RegistroLogin(idRegistroLogin, idVendedor, fechaLogin, EntradaSalida) VALUES ( DEFAULT, ?, NOW(), ? )";
        PreparedStatement ps = conn.prepareStatement(query);
        //ps.setInt(1, 0);
        ps.setInt(1, Integer.parseInt(idUsuario));
        //ps.setTimestamp(3, new java.sql.Timestamp( new java.util.Date().getTime() ) );
		ps.setString(2, "E");
        int ret = adminc.insert(ps);
        
        adminc.cerrarConexionBDD();
        return ret;
    }
    
    public boolean insertarEmpleado ( String nombre, String apellido, String direccion, String celular, int tipo ) throws SQLException, IllegalAccessException, InstantiationException, ClassNotFoundException {
        
        try{
        String query = "Insert into Empleado (Nombre, Apellido, Direccion, Celular, Tipo) Values ( '"+ nombre+"','"+apellido+"','"+direccion+"','"+celular+"',"+ tipo+ ")";
        System.out.println(query);
        adminc.update(query);
         return true;
        }
        catch(Exception e){
        
            System.out.println("Fallo Insertar venta");
            return false;
        }

        
    }
    
    public boolean insertarUser ( String pass, String n, String a) {
        //Select idVendedor from empleado where Nombre = 'Ernesto' and Apellido = 'Yat'
        // obtener id empleado
        int emp;
        try {
            
           adminc.abrirConexionBDD();
            ResultSet empleado = adminc.consulta("Select idVendedor from Empleado where Nombre = '"+n+"' and Apellido = '"+a+"'");
            empleado.next();
            emp = Integer.parseInt(empleado.getObject("idVendedor").toString());
            System.out.println("emp id: " + emp);
            
            String query = "INSERT INTO AutoVentas.Usuarios (password,empleado_idVendedor) Values ( md5('"+pass+"'),"+emp+")";
            System.out.println(query);
            adminc.update(query);
         
            adminc.cerrarConexionBDD();
            return true;
        } catch (Exception e) {
           System.out.println("Fallo obtener empleado: " + e);
           return false;
        }
        
        
    }
    
    
    

    
}
